Computing  representative learning set via Mathematica

B. Palánc(z^1), L.Völgyes(i^2),  P. Zaletnyi(k^2) and L. Kovác(s^3)

\(\^1\) Department of Photogrammetry and Geoinformatics
\(\^2\)Department of Geodesy and Surveying
\(TraditionalForm\`\^3\)Department of  Control Engineering and Information Technology
Budapest University of  Technology and Economics,
H-1111 Budapest, Hungary, Müegyetem rkp. 3.

e-mail:palancz@epito.bme.hu

Abstract

The efficiency of the application of soft computing methods like Artificial Neural Networks (ANN)  or Support Vector Machines (SVM) depends considerably on the representativeness of the learning sample set employed for training the model. In this study a simple method based on the Coefficient of Representativity (CR) is proposed for extracting representative learning set from measured geospatial data. The method eliminating successively the sample points having low CR value from the dataset is implemented in Mathematica and its application is illlustrated by the data preparation for the correction model of the Hungarian gravimetrical geoid based on  current GPS measurements.

1. Introduction

During the last decade, machine learning algorithms, such as artificial neural networks (ANN)  and support vectors machines (SVM) have extensively used for wide range of applications. They have been applied for classification, regression, feature extraction, data prediction and spatial data analysis.
To ensure generalization properties of machine learning methods like artificial neural networks and support vector machines, the set of measured data should be split into learning and testing sets, (Berthold and Hand, 2003). The question is how to divide the measured sample set into these two sets in order to extract the most information as it is possible. This is especially important when the number the samples is relatively small. There are different methods suggested how to carry out the learning and testing process taking into account this requirement, (Gilardi and Bengio 2000).  Optimal sampling scheme would be regular triangular or square grids , which keep the maximum standard error to a minimum (McBratney et al 1981). However geospatial data samples are irregularly spaced and do not form rectangular grid. Qualitatively these irregularities are indicated by local clustering and dispersion, but for numerical computation one needs quantitative characterization of the deviation from the optimal, uniform spatial sample distribution. There are different indices introduced to indicate the representativeness of a real sample distribution (Dubois 2000). In this study we employed the Coefficient of Representativity (CR) proposed by (Dubois 2000).

2. Measures of representativity

2.1 Nearest Neighbours Index

Let us suppose, that we have  {(Subscript[z, i]), (Subscript[x, i]), (Subscript[y, i])}  measured sample points and their  {(Subscript[x, i]), (Subscript[y, i])} coordinates are,

dataS = {{3.3, 7.7}, {6.8, 9.5}, {6.9, 12.8}, {8.45, 4.7}, {10.3, 
            12.3}, {11.5, 9.6}};

Let us consider the following coordinates as the  border  points of a convex region containing the sample points,

border = {{13.8, 7.3}, {13.2, 11.9}, {9.5, 14.9}, {6.7, 15.25}, {4.4, 
            14}, {2.1, 11.1}, {0.6, 5.1}, {5.3, 2.4}, {11, 1.1}, {12.9, 
            3.1}};

Be aware, that this border is different from the convex hull of the sample points. The set of all points is

dataT = Join[dataS, border]

<<DiscreteMath`ComputationalGeometry`

The convex hull of this set is

convexhull = ConvexHull[dataT]

Although these points are the same as the border points, we need their indices in the total set in order to employ further built in function of DiscreteMath`ComputationalGeometry package of Mathematica.

Then we can display the border  with the internal sample points,

pdataT = 
        PlanarGraphPlot[dataT, convexhull, LabelPoints -> False, 
          Epilog -> {AbsolutePointSize[4], RGBColor[1, 0, 0], 
              Map[Point, dataS]}];

Fig.1 Measured sample points and the border of the convex region

One of the possible characterizations of the representativity of this sample set was suggested by (Clark and Evans, 1954) via Nearest Neighbours Index (NNI) . The NNI is defined as the ratio of the mean of the Nearest Neigbours distances ((Subscript[NN, dist])),

(Subscript[MeanNN, dist])=(∑_(i = 1)^N)(((Subscript[NN, dist]))/N)

to the mean of the Nearest Neigbours distances for uniform distribution of the points. Here N  is the number of sampling points. This Mean Random Distance (MRD) is defined as

MeanRD = (Sqrt[((Subscript[S, Total])/N)])

where (Subscript[S, total])  is the total surface of the investigated region .  The NNI is thus equal to

NNI = ((Subscript[MeanNN, dist])/MeanRD)

In our case the  Nearest Neigbours distances  are

NNdist = 
      Table[Norm[
          dataS[[i]] - Drop[
                dataS, {i, i}][[NearestNeighbor[dataS[[i]], 
                  Drop[dataS, {i, i}]]]]], {i, 1, 
          Length[dataS]}]

The average is

MeanNNdist = Mean[NNdist]

The total area of the region can be computed via Delaunay triangulation,

PlanarGraphPlot[dataT, LabelPoints -> False, 
        Epilog -> {AbsolutePointSize[4], RGBColor[1, 0, 0], 
            Map[Point, dataS]}];

Fig.2 Delaunay triangulation of the data samples and the border points

We compute the specific data for each triangle,

delval = DelaunayTriangulation[dataT];
{diagvert1, diagval1} = 
        BoundedDiagram[border, dataT, delval, 
          convexhull];
areas = TileAreas[dataT, diagvert1, diagval1];

The total area is

Stotal = Apply[Plus, areas]

then the Mean Random Distance is

MeanRD = (Sqrt[(Stotal/Length)[dataS]])

therefore the Nearest Neighbours Index is

NNI = (MeanNNdist/MeanRD)

The NNI is close to 1 for the sampling points having a uniform spatial distribution. When NNI < 1, the samples are more clustered than expected compared to a uniform random distribution. In the contrary, an NNI > 1 indicates a dispersion of the samples.
The main limitation of this index that this is a global measure, and give no information about local clusters or dispersions.

2.2 Voronoi polygons

Voronoi polygons have the property to contain only one measurement and to have a geometry that will include all the data points that are closer to the measurement than those associated to clustered data, (Okabe et al 1992). The area of the Voronoi polygon belonging to a sample point may be considered as the region of attraction of this point, because the points of this region are closer to this sample points than to other sample points.

DiagramPlot[dataT, diagvert1, diagval1,
 Epilog->{AbsolutePointSize[4],RGBColor[1,0,0],Map[Point,Map[{#[[1]]+0.25,#[[2]]}&,dataS]]}];

Fig.3 Voronoi polygons of the data samples and the border points

In case of uniform distribution of the sample points, the size of the region of attraction of every sample point - the areas of the corresponding Voronoi polygons - are the same.
Therefore, the histogram of the areas of these polygons might help to describe quantitatively the homogenity of the sample set. The area of each polygons

areas = TileAreas[dataT, diagvert1, diagval1]

The areas of the those Voronoi polygons, which  belong to the sample data

areasS = 
      Map[areas[[#]] &, 
        Complement[Range[1, Length[areas]], convexhull]]

Now the histogram of the area of the Voronoi polygons,

<< Graphics`Graphics`

Histogram[areasS];

Fig.4 Histogram of the area of  the Voronoi polygons

Some statistical values can give also information about the homogenity of the sample set,

Min[areasS]

Max[areasS]

Mean[areasS]

StandardDeviation[areasS]

In order to indicate the size of  the Voronoi polygons as gray level intensity of the very polygon, a function PolygonIntensityPlot was written,

PolygonIntensityPlot[data_, diagval_, diagvert_, areas_, xmin_, xmax_] := 
      Module[{n1, n2, s1, s2, s3, s4, s5, s6, p}, 
n1 = 
          Length[diagval]; 
n2 = 
          Length[areas]; 
s1 = 
          Map[#[[2]] &, diagval]; 
s2 = 
          Table[Map[diagvert[[#]] &, s1[[i]]], {i, 1, 
              n1}]; 
s3 = 
          0.25 + 0.75  Map[(# - xmin)/(xmax - xmin) &, 
                areas]; 
s4 = 
          Table[{GrayLevel[s3[[i]]], Polygon[s2[[i]]]}, {i, 1, n2}] // 
            Flatten; 
s5 = {AbsolutePointSize[3], 
            RGBColor[0, 1, 0], 
            Map[Point, 
              Drop[data, -(n1 - 
                      n2)]]}; 
s6 = {RGBColor[1, 0, 0], 
            Map[Line, s2]}; 
p = 
          DiagramPlot[data, diagvert, diagval, LabelPoints -> False, 
            Epilog -> Join[s4, s5, s6], 
            DisplayFunction -> Identity]; p]

Let us employ it. For scaling the gray level intensity, we need the minimum and maximum values

xmin = Min[areasS];

xmax = Max[areasS];

Show[
        PolygonIntensityPlot[dataT, diagval1, diagvert1, areasS, xmin, xmax], 
        DisplayFunction -> $DisplayFunction];

Fig.5 Intensity plot of the Voronoi cells indicating the size of the polygons.

A polygon gray level intensity proportional with its size. Larger polygons are brigthter.
The main handicape of this measure that points can be clustered and still have relatively large Voronoi polygons. In other words, large Voronoi polygons do not guarantee that the points are isolated. 
For example, the Voronoi polygon belonging to point 6 is larger than those belonging to point 3 or point 5. However the distance between points 3 - 5   is greater than the distance between points 5 - 6, see Fig.3,

areas[[6]] > areas[[3]] ∧ 
      areasS[[6]] > areas[[5]]

Norm[dataS[[3]] - dataS[[5]]] > 
      Norm[dataS[[5]] - dataS[[6]]]

2.3 Coefficient of Representativity

Dubois suggested a new measure that combines both the distance of each point to its nearest neigbour and the surface of the Voronois polygons. This measure, called Coeffient of Representativity (CR) is a product of two terms:

A = ((Subscript[S, V])/(Subscript[S, m]))

which will take into account the surface of the Voronoi polygon. It is equal to the ration of the surface of the Voronoi polygon ((Subscript[S, V])) to the ideal surface it should have to obtain in case of a homogeneous sample set. This surface is simply defined as the mean surface ((Subscript[S, m])) that is the total area of the investigated region (Subscript[S, Total]), devided by the number of sampling points N.

(Subscript[S, m]) = ((Subscript[S, Total])/N)

The second term B, is equal to the ratio of the squared distance between a point its nearest neighbour ((Subscript[NN, dist])) to the mean surface of the Voronoi polygons

B=((((Subscript[NN, dist])^2))/((Subscript[S, m])))

For reqular grid where points are distributed in the middle of each cell of grid ((Subscript[NN, dist])^2) = (Subscript[S, V]) and B = 1.
Then the  CR for any point can be defined as

CR = A B = ((Subscript[S, V])/(Subscript[S, m])) ((((Subscript[NN, dist])^2))/((Subscript[S, m])))

In our case

Sm = Mean[areasS]

A = (areasS/Sm)

\(B = Map[#\^2 &, NNdist]\/Sm\)

CR = Times[A, B]

The statistical features of this measure can be computed similarly, namely

Histogram[CR];

Fig.6 Histogram of the CR  of the samples

We need the minimum and maximum values of CR in order to display the individual CR value of each cell as gray level intensity of the corresponding cell

crmin = Min[CR];

crmax = Max[CR];

Show[
        PolygonIntensityPlot[dataT, diagval1, diagvert1, CR, crmin, crmax], 
        DisplayFunction -> $DisplayFunction];

Fig.7 Intensity plot of the CR values. A polygon gray level intensity proportional with its CR

The measure based on the area of the Voronoi polygons are different from the measure based of CR, compare Figs.5 and 7.

3. Constructing optimal learning set

Once we have a measure of the representativity of a data set, an algorithm can be developed to extract samples from the irregular measured data set to form the best learning set as it is possible. This optimal extraction process can be considered as a combinatoric max-min problem. Namely, from the measured n patterns, one should select m < n samples in a way, that in the constructed learning set, the minimum of CR will be the greatest considering every possible (({{n}, {m}})) combinations. Strictly saying, it is a max(min(CR)) combinatoric problem, and one may solve it by genetic algorithm.

However, such an algorithm is very time consuming, therefore a suboptimal algorithm may be employed as an alternative solution. In this case, we construct the learning set eliminating sucessively samples from the original set of the n samples. Namely, we simply drop out the sample, which has actually the minimal CR and repeat this action m - n times.

First, we summarize the steps, which are necessary to compute the CR values of a sample set having a convex boundary in a function CoefficientOfRepresentativity

\(\(CoefficientOfRepresentativity[dataS_, border_] := 
        Module[{i, j, n, s, L, dataT, convexhull, NNdist, delval, diagvert1, 
            diagval1, areas, areasS, A, B, Sm, 
            CR}, 
dataT = 
            Join[dataS, border]; 
convexhull = 
            ConvexHull[dataT]; 
n = 
            Length[dataS]; 
NNdist = {}; 
Do[
L = {}; 
Do[
              s = Norm[dataS[\([i]\)] - dataS[\([j]\)]]; 
              If[i ≠ j, AppendTo[L, s]];, {i, 1, 
                n}]; 
AppendTo[NNdist, 
              Min[L]], 
{j, 1, 
              n}]; 
delval = 
            DelaunayTriangulation[dataT]; 
{diagvert1, 
              diagval1} = 
            BoundedDiagram[border, dataT, delval, 
              convexhull]; 
areas = 
            TileAreas[dataT, diagvert1, 
              diagval1]; 
areasS = 
            Map[areas[\([#]\)] &, 
              Complement[Range[1, Length[areas]], 
                convexhull]]; 
Sm = 
            Mean[areasS]; 
A = 
            areasS\/Sm; 
B = 
            Map[#\^2 &, NNdist]\/Sm; 
CR = 
            Times[A, B]];\)\)

Here we used a double Do loop for computing the  Nearest Neigbours distances  instead of the functional programming form employed the NearestNeighbor built in function, see above. It was much more elegant, however proved to be very slow in case of real size of sample set.

Let us test our function

CR0 = CoefficientOfRepresentativity[dataS, border]

This is the same result, we have got by the step by step computation,

CR == CR0

Now, we can write the modul, SucessiveElimination to carry out the successive elimination,

SucessiveElimination[dataS_, border_, ne_] := 
        Module[{DATAS, cr, mincr, index, i}, 
DATAS = 
            dataS; 
Do[
cr = 
              CoefficientOfRepresentativity[DATAS, 
                border]; 
mincr = 
              Min[cr]; 
index = 
              First[Flatten[Position[cr, mincr]]]; 
DATAS = 
              Drop[DATAS, {index, index}], 
{i, 1, 
              ne}]; 
DATAS];

Let us eliminate two samples from the original data set

dataS2 = SucessiveElimination[dataS, border, 2];

In order to display the result, we need some computations

dataT2 = Join[dataS2, border];

convexhull2 = ConvexHull[dataT2];

delval2 = DelaunayTriangulation[dataT2];
{diagvert2, diagval2} = 
        BoundedDiagram[border, dataT2, delval2, convexhull2];

CR2 = CoefficientOfRepresentativity[dataS2, border];

Here we use the original values of the  crmin and crmax in order to recognize the improvement of the homogenity of the CR distribution,

Show[
        PolygonIntensityPlot[dataT2, diagval2, diagvert2, CR2, crmin, crmax], 
        DisplayFunction -> $DisplayFunction];

Fig.8 Intensity plot of the CR values after eliminating two samples

It can be clearly seen, that the homogenity of sample set has been considerably impoved by elimination of the sample points having low CR values.
As illustration of the application of the method for real world problem,  a learning set will be constructed for a neural network to be trained to  model  the Hungarian gravimetrical/GPS  geoid.

4. Learning set  for the Hungarian geoid

4.1 Data preprocessing

Recently GPS measurements provide more precise data than gravimetrical measurements did before. However, their numbers are considerably less than those of the gravimetrical ones. Therefore it is reasonable to use them for correction. The values of the correction of the gravimetrical geoid - the so called corrector surface - are based on the differences between the GPS and the gravimetrical measurements, (Featherstone W.E. 2000). In case of Hungary we have the following dataset for the corrector surface,

TotalGPS = 
        ReadList["C:\data01.txt", {Number, Number, Number}];

We need only the (x, y) coordinates

\(\(\(dataS = Map[{#[\([1]\)], #[\([2]\)]} &, TotalGPS];\)\(
\)
    \)\)

Let us prepare to display these sample points

\(\(\(p1 = 
        Show[Graphics[{AbsolutePointSize[3], RGBColor[1, 0, 0], 
              Map[Point, dataS]}], DisplayFunction -> Identity];\)\(
\)
    \)\)

The coordinates of the state boundary points

bo = ReadList["c:\data02.dat", {Number, Number}];

These data files (data01.txt and data02.dat)  can be placed anywhere, only the proper path should be given.

Let us prepare to display these points, too

p2 = 
        Show[Graphics[{AbsolutePointSize[4], RGBColor[0, 0, 1], 
              Map[Point, bo]}], 
          DisplayFunction -> Identity];

The convex hull of the boundary points

convexhull = ConvexHull[bo, AllPoints -> False]

These will be considered as the convex border of the samples region

border = Map[bo[[#]] &, convexhull];

Let us prepare to display this convex border, too

chb = ConvexHull[border, AllPoints -> False];

p3 = 
        PlanarGraphPlot[border, chb, LabelPoints -> False, 
          DisplayFunction -> Identity];

Now, here are the three plots together, demonstrating the starting situation

Show[{p1, p2, p3}, AspectRatio -> 0.7, 
        DisplayFunction -> $DisplayFunction];

Fig.9 Locations of  the sample values of the corrections and the convex border of the region

4.2 Computing Voronoi tesselations

First, we compute the Voronoi polygons.

dataT2 = Join[dataS, border];

convexhull2 = ConvexHull[dataT2];

delval2 = DelaunayTriangulation[dataT2];
{diagvert2, diagval2} = 
        BoundedDiagram[border, dataT2, delval2, convexhull2];

pV = 
        DiagramPlot[dataT2, diagvert2, diagval2, LabelPoints -> False, 
          Epilog -> {AbsolutePointSize[3], RGBColor[0, 1, 0], 
              Map[Point, diagvert2]}, 
          DisplayFunction -> Identity];

Show[{pV, p2, p1}, 
        DisplayFunction -> $DisplayFunction];

Fig.10 Voronoi tesselations

4.3 Computing Coefficient of Representativity

Then the CR values for the sample points can be computed,

CR = CoefficientOfRepresentativity[dataS, border];

crmin = Min[CR]

crmax = Max[CR]

pi = 
        PolygonIntensityPlot[dataT2, diagval2, diagvert2, CR, crmin, 
          crmax];

Show[{pi}, DisplayFunction -> $DisplayFunction];

Fig.11 The distribution of CR in the Voronoi cells

Smaller the value of CR, darker the corresponding cell area. Some statistics are

Histogram[CR];

Fig.12 The histogram of the CR distribution of the original data set

The statistics of the CR distribution of the original sample set

Min[CR]

Max[CR]

Mean[CR]

StandardDeviation[CR]

Table 1. Statistics of CR distribution of the original data set (304 points)

({{Min, Max, Mean, Standard Deviation}, {0.00235, 4.712, 0.449, 0.593}})

We can see, that the small CR values dominate in the distribution.

4.4 Sucessive elimination of sample points having low CR

In order to create the learning set, we eliminate 110 sample points. This computation is very time consuming.

s = Timing[SucessiveElimination[dataS, border, 110]];

The running time with Mathematica 5.2 for Windows XP Professional, on a HP Compaq PC, with processor Intell Pentium 4,  2.8 MHz and 256 MB RAM was approximately 1450  seconds, which means about 25 minutes:

s[[1]]

dataS2 = s[[2]];

Figs. 13-15 show the remained points representing the learning set, the Voronoi tessalation and the distribution of their CR values, respectively.

\(\(\(p1 = 
        Show[Graphics[{AbsolutePointSize[3], RGBColor[1, 0, 0], 
              Map[Point, dataS2]}], 
          DisplayFunction -> Identity];\)\(
\)
    \)\)

Show[{p1, p2, p3}, AspectRatio -> 0.7, 
        DisplayFunction -> $DisplayFunction];

Fig.13 Locations of the sample values of the corrections after elimination of 110 points

In order to display further results, we need some additional computations

dataT2 = Join[dataS2, border];

convexhull2 = ConvexHull[dataT2];

delval2 = DelaunayTriangulation[dataT2];
{diagvert2, diagval2} = 
        BoundedDiagram[border, dataT2, delval2, convexhull2];

pV = 
        DiagramPlot[dataT2, diagvert2, diagval2, LabelPoints -> False, 
          Epilog -> {AbsolutePointSize[3], RGBColor[0, 1, 0], 
              Map[Point, diagvert2]}, 
          DisplayFunction -> Identity];

Show[{pV, p2, p1}, 
        DisplayFunction -> $DisplayFunction];

Fig.14 Voronoi tesselations of the learning set

CR = CoefficientOfRepresentativity[dataS2, border];

pi = 
        PolygonIntensityPlot[dataT2, diagval2, diagvert2, CR, crmin, 
          crmax];

Show[{pi}, DisplayFunction -> $DisplayFunction];

Fig.15 The distribution of CR in the Voronoi cells in the learning set

Histogram[CR];

Fig.16.  The histogram of the CR distribution in the learning set

The statistics of the CR distribution of the original sample set

Min[CR]

Max[CR]

Mean[CR]

StandardDeviation[CR]

Table 2. Statistics of CR distribution of the learning set (194 points)

({{Min, Max, Mean, Standard Deviation}, {0.1606, 3.767, 0.563, 0.469}})

It can be seen that from the Figs. 13-16 that the CR distribution became much more regular and the small CR values have been eliminated.

4.5 Analysis of the eliminated sample points

The eliminated sample points represent the testing set, therefore it is reasonable the check this set  from the point of view of homogenity. The coordinates of the testing set are

dataT = Complement[dataS, dataS2];

\(\(\(p1 = 
        Show[Graphics[{AbsolutePointSize[3], RGBColor[1, 0, 0], 
              Map[Point, dataT]}], DisplayFunction -> Identity];\)\(
\)
    \)\)

Show[{p1, p2, p3}, AspectRatio -> 0.7, 
        DisplayFunction -> $DisplayFunction];

Fig.17 Locations of the testing points separated from the original dataset

In order to display the result, we need some computations

dataT2 = Join[dataT, border];

convexhull2 = ConvexHull[dataT2];

delval2 = DelaunayTriangulation[dataT2];
{diagvert2, diagval2} = 
        BoundedDiagram[border, dataT2, delval2, convexhull2];

pV = 
        DiagramPlot[dataT2, diagvert2, diagval2, LabelPoints -> False, 
          Epilog -> {AbsolutePointSize[3], RGBColor[0, 1, 0], 
              Map[Point, diagvert2]}, 
          DisplayFunction -> Identity];

Show[{pV, p2, p1}, 
        DisplayFunction -> $DisplayFunction];

Fig.18 Voronoi tesselations of the testing set

CR = CoefficientOfRepresentativity[dataT, border];

pi = 
        PolygonIntensityPlot[dataT2, diagval2, diagvert2, CR, crmin, 
          crmax];

Show[{pi}, DisplayFunction -> $DisplayFunction];

Fig.19 The distribution of CR in the Voronoi cells in the testing set

Histogram[CR];

Fig.20  The histogram of the CR distribution in the testing set

The statistics of the CR distribution of the original sample set

Min[CR]

Max[CR]

Mean[CR]

StandardDeviation[CR]

Table 3. Statistics of CR distribution of the testing set (110 points)

({{Min, Max, Mean, Standard Deviation}, {0.0042, 4.426, 0.434, 0.752}})

Comparing the values in  Table 1. and Table 3., it can be seen that the statistics even for the testing set have been improved, except the standard deviation.

5. Conclusions

The suggested method is proved to be successful to decrease considerably the inhomogenity of the learning dataset and the differences in the CR indices of the data points. An improvement of this method would be the application of  Voronoi tessalation on non-convex region. In this way the effect of non-convex country borders can be taken into account and more realistic CR values could be computed.

6. Acknowledgement

The authors would like to thank  A. Kenyeres providing the GPS/levelling data of Hungary.

7. References

1.  Berthold M. and Hand D.J. (Eds.):  "Intelligent Data Analysis, An Introduction", Springer, 2003.

2. McBratney, A.B., Webster and Burgess T.M.: The design of optimal sampling schemes for local estimation and mapping of regionalized variables. I. Theory and method. Computer & Geosciences, 1981, 7 (4): pp. 331-334.

3. Dubois G.: How representative are samples in sampling network? J.of Geographic Information and Decision Analysis, 2000, Vol.4. No.1. pp. 1-10.

4. Clark P.J. and Evans F.C.: Distance to nearest neighbor as a measure of spatial relationships in populations. Ecology, 1954, 35. pp. 445-453.

5. Okabe A., Boots B. and Sugihara K.: "Spatial Tessellations. Concept and Applications of Voronoi Diagrams". Wiley and Sons. 1992.

6. Gilardi N. and Bengio S.: Local Machine Learning Models for Spatial Data Analysis. J.of Geographic Information and Decision Analysis., 2000, Vol.4. No.1. pp. 11-28.

7. Featherstone W.E.: Refinement of a gravimetric geoid using GPS and levelling data, J. Surv. Engng., 2000, 126 (2), pp.27-56.